﻿using System;
using System.Data;
using System.Linq;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using Home.MobileSales.Sales.Interface;

namespace Home.MobileSales.Sales.Presenter
{
    public class AboutFormPresenter
    {
        private IAboutView _view;
        public DataTable BuildInformation()
        {
            DataTable dt = new DataTable("Assemblies");
            dt.Columns.Add("AssemblyName");
            dt.Columns.Add("AssemblyVersion");
            List<string> assembliesName = new List<string>();
            assembliesName.Add("Sales.exe");
            assembliesName.Add("Common.dll");
            assembliesName.Add("ImpExpData.dll");
            assembliesName.Add("Print.dll");
            assembliesName.Add("WorkGps.dll");
            foreach (var assemblieName in assembliesName)
            {
                //object[] attributes = Assembly.LoadFrom(assemblieName).GetCustomAttributes(false);
                DataRow dr = dt.NewRow();
                dr[0] = assemblieName;
                dr[1] = Assembly.LoadFrom(assemblieName).GetName().Version.ToString();
                dt.Rows.Add(dr);
            }
            return dt;
        }

        public AboutFormPresenter (IAboutView view)
        {
            _view = view;
            _view.Data = BuildInformation();
        }

        //public string AssemblyTitle
        //{
        //    get
        //    {
        //        object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
        //        if (attributes.Length > 0)
        //        {
        //            AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
        //            if (titleAttribute.Title != "")
        //            {
        //                return titleAttribute.Title;
        //            }
        //        }
        //        return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
        //    }
        //}

        //public string AssemblyVersion
        //{
        //    get
        //    {
        //        return Assembly.GetExecutingAssembly().GetName().Version.ToString();
        //    }
        //}



        //public string AssemblyDescription
        //{
        //    get
        //    {
        //        object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);

        //        if (attributes.Length == 0)
        //        {

        //            return "";

        //        }

        //        return ((AssemblyDescriptionAttribute)attributes[0]).Description;

        //    }

        //}

        //public string AssemblyProduct
        //{

        //    get
        //    {

        //        object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);

        //        if (attributes.Length == 0)
        //        {

        //            return "";

        //        }

        //        return ((AssemblyProductAttribute)attributes[0]).Product;

        //    }

        //}



        //public string AssemblyCopyright
        //{

        //    get
        //    {

        //        object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);

        //        if (attributes.Length == 0)
        //        {

        //            return "";

        //        }

        //        return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;

        //    }

        //}



        //public string AssemblyCompany
        //{

        //    get
        //    {

        //        object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);

        //        if (attributes.Length == 0)
        //        {

        //            return "";

        //        }

        //        return ((AssemblyCompanyAttribute)attributes[0]).Company;

        //    }

        //}

    }
}
